package sg.edu.nus.iss.billing;

/**
 * @author Yeo Hee Ling, Ananda, BeeHong
 *
 */
public final class BillingConstants {
	
	// Data sources
	public static final String DATASOURCE_USER = "OneBillingSystem_User_DS.dat";
	public static final String DATASOURCE_ACCOUNT = "OneBillingSystem_Account_DS.dat";
	public static final String DATASOURCE_BILLGENERATEDHISTORY = "OneBillingSystem_BillGeneratedHistroy_DS.dat";
	
	// Module Properties File.
	public static final String PROPERTIES_APPLICATION = "properties/application.properties";
	public static final String PROPERTIES_ADMINISTRATOR = "properties/administrator.properties";
	public static final String PROPERTIES_CUSTOMER = "properties/customer.properties";
	public static final String PROPERTIES_SUBSCRIPTION = "properties/subscription.properties";
	public static final String PROPERTIES_SERVICERATE = "properties/serviceRate.properties";
	public static final String PROPERTIES_BILL = "properties/bill.properties";
	public static final String PROPERTIES_COMPLAINT = "properties/complaint.properties";
	
	// Report Templates Path.
	public static final String BILL_REPORT_TEMPLATE = "templates/reportTemplate.html";
	
	// System State enumeration
	public enum SystemState {
		SYSTEM_USER_CREATE, SYSTEM_USER_VIEW, SYSTEM_USER_UPDATE,
		CUSTOMER_REGISTER, CUSTOMER_VIEW, CUSTOMER_UPDATE,
		SUBSCRIPTION_ADD, SUBSCRIPTION_UPDATE,
		BILL_VIEW, BILL_GENERATE_MTHLY,
		COMPLAINT_ADD, COMPLAINT_VIEW, COMPLAINT_UPDATE;
	}
	
	// Search system enumeration
	public enum SearchTypes {
		EXISTING_ACC, SUBSCRIPTIONS, COMPLAINTS, VIEW_BILL
	}
	public enum SearchSortBy {
		ACCOUNT_NO, COMPLAINT_NO, COMPLAINT_STATUS, NRIC, NAME;
	}
}
